package test3_12;

import java.util.Arrays;

public class Homework6_9_moveZero {
    public static void main(String[] args) {
        /*
        已知一个数组，例如int[] a={5,6,8,0,6,0,1,0,56};
        写一段代码，要求不使用新数组的情况下，将非0的数字向前移动
        将所有的0放非0之后，并说明一下程序执行的时间复杂度;(百度机试题)
        移动之后的数据应该如下：
        a={5,6,8,6,1,56,0,0,0};
         */

        //初始化数组a
        int[] a={5,6,8,0,6,0,1,0,56};
        //循环一个个找
        for (int i = 0; i < a.length; i++) {
            //找到一个0元素
            if (a[i] == 0) {
                //再用循环与他后面的数进行比较并交换
                for (int j = i + 1; j < a.length; j++){
                    if(a[j] != 0){
                        int tmp;
                        tmp = a[i];
                        a[i] = a[j];
                        a[j] = tmp;
                        break;
                    }
                }
            }
        }
        System.out.println(Arrays.toString(a));
    }
}
